/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package es.revuel.util.database;



import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Usuario
 */
public class UtilidadesBDMySQL {
     Statement st = null;
     Connection conexion = null;
     
     /**
      * Al crearse la clase se establece una conexion
      */
     public UtilidadesBDMySQL(){
         if (st==null){
            establecerConexion();
         }
     }
    
     /**
      * Establece la conexion a la base de datos
      * @return Statement - 
      */
    public Statement establecerConexion(){
       if (st!= null){
           cerrarConexion();
       }
        try {
            Class.forName("com.mysql.jdbc.Driver");
             conexion= DriverManager.getConnection("jdbc:mysql://localhost/tpvonce", "root", "12345");
             st = conexion.createStatement();
            
        } catch (ClassNotFoundException ex) {
            Logger.getLogger(UtilidadesBDMySQL.class.getName()).log(Level.SEVERE, null, ex);
            cerrarConexion();
        } catch (SQLException ex) {
            Logger.getLogger(UtilidadesBDMySQL.class.getName()).log(Level.SEVERE, null, ex);
            cerrarConexion();
        }
        return st;
    }
    
    public void cerrarConexion(){
      
        try{
        if (st !=null){
             st.close();
         }
         if (conexion!=null){
             conexion.close();
         }
        }catch(SQLException se){
            Logger.getLogger(UtilidadesBDMySQL.class.getName()).log(Level.SEVERE, null, se);
        }
    }
    
    /**
     * 
     * @param sql
     * @return ResultSet
     */
    public ResultSet realizarConsulta(String sql){
        ResultSet rs = null;
         try {
             rs = st.executeQuery(sql);
         } catch (SQLException ex) {
             Logger.getLogger(UtilidadesBDMySQL.class.getName()).log(Level.SEVERE, null, ex);
             cerrarConexion();
         }
         return rs;
    }
    
   
    /**
     * Ejecuta un insert en la base de datos
     * @param sql
     * @return 1 si se produce fallo 0 
     */
    public int realizarInsert(String sql){
        int fallo =1;
         try {
             st.executeUpdate(sql);
             fallo = 0;
         } catch (SQLException ex) {
             Logger.getLogger(UtilidadesBDMySQL.class.getName()).log(Level.SEVERE, null, ex);
             cerrarConexion();
         }
         return fallo;
    }
}
